import Vue from 'vue'
import Vuex from 'vuex'
import { doLogin } from '@/api/user'
import { Dialog, Toast } from 'vant'
import rotuer from '../router'
Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 页面刷新时，状态管理器中的状态会重置
    // 可以和本地存储联合使用
    isLogin: localStorage.getItem('isLogin') === 'true'
  },
  mutations: { // 唯一改变数据的方式就是显示的提交mutations
    changeIsLogin (state, payload) {
      // payload代表传递的参数,这个参数可以是字符串，也可以是对象，还可以是数组
      state.isLogin = payload
    }
  },
  actions: {
    loginAction (context, params) {
      doLogin(params).then(res => {
        if (res.data.code === '10010') {
          Dialog.confirm({
            message: '该用户还未注册',
            confirmButtonText: '立即注册',
            cancelButtonText: '取消'
          }).then(() => {
            this.$router.push('/register')
          }).catch(() => {})
        } else if (res.data.code === '10011') {
          Toast('密码错误')
        } else {
          localStorage.setItem('token', res.data.data.token)
          localStorage.setItem('userid', res.data.data.userid)
          localStorage.setItem('isLogin', true)
          context.commit('changeIsLogin', true)
          rotuer.back()
        }
      })
    },
    logoutAction () {

    }
  }
})
